import { getPerson, updatePerson } from "../../api/user";
import { sleep } from "../../utils/index";

Page({
  data: {
    userInfo: null,
  },

  /**
   * 获取数据
   */
  async refresh() {
    await sleep();

    const resp = await getPerson();

    this.setData({ userInfo: resp });
  },

  /**
   * 选择完头像
   */
  onChooseAvatar(event) {
    console.log("event", event);
    /**
     * avatarUrl - 微信内一个临时图片地址，该地址可以给到一个 image 组件使用能渲染出来，但是下次就不行了。
     * 开发人员需要将图片做上传，上传到自己的服务器
     *
     * 调用 wx.uploadFile() 来实现文件上传
     */
    const { avatarUrl } = event.detail;

    wx.uploadFile({
      filePath: avatarUrl,
      name: "file",
      url: "http://10.36.133.83:8001/app/base/comm/upload",
      success: (res) => {
        console.log("uploadFile SUCCESS", res);
        // 将 res.data 转换成对象, 取出url地址，这里是 data
        const { data } = JSON.parse(res.data);
        // 使用该地址，修改页面上的头像
        this.setData({
          "userInfo.avatarUrl": data,
        });
      },
    });
  },

  /**
   * 演示下 wx.uploadFile() 与 wx.chooseImage()
   */
  async test() {
    const { tempFilePaths } = await wx.chooseImage({
      count: 1, // 数量
      sizeType: ["compressed", "original"], // 图片质量
      sourceType: ["album", "camera"], // 选择来源  album - 相册  camera - 相机
    });
    console.log("resp", tempFilePaths);
    const path = tempFilePaths[0];
    console.log("path", path);
    // 上传到自己的服务器
    wx.uploadFile({
      filePath: path,
      name: "file",
      url: "http://10.36.133.83:8001/app/base/comm/upload",
      success: (res) => {
        console.log("uploadFile SUCCESS", res);
        // 将 res.data 转换成对象, 取出url地址，这里是 data
        const { data } = JSON.parse(res.data);
        // 使用该地址，修改页面上的头像
        this.setData({
          "userInfo.avatarUrl": data,
        });
      },
    });
  },

  onBlur(event) {
    this.setData({
      "userInfo.nickName": event.detail.value,
    });
  },

  /**
   * 确认修改
   */
  async onFinish() {
    // 1. 获取最新的头像地址 avatarUrl 与 昵称 nickName
    const { avatarUrl, nickName } = this.data.userInfo;
    console.log(avatarUrl, nickName);
    // 2. 调用接口
    await updatePerson({ avatarUrl, nickName });
    // 3. 修改成功
    wx.showToast({ title: "修改成功" });
  },

  onLoad() {
    this.refresh();
  },
});
